package com.cin.cma.server.pos.service;

import com.cin.cma.common.model.finixx.base.BaseRequest;
import com.cin.cma.common.model.finixx.base.BaseResponse;
import com.cin.cma.server.pos.common.extension.ActionExtension;

/**
 *
 * @Date：2024-07-17 12:07
 */
public interface IProxyRequestService {
    <T extends BaseRequest, X extends BaseResponse> X context(String proxyPostUrl, Integer timeout, T request, Class<X> clazz, ActionExtension func) throws Exception;

    <T extends BaseRequest, X extends BaseResponse> X context(Integer timeout, T request, Class<X> clazz, ActionExtension func) throws Exception;

    <T extends BaseRequest, X extends BaseResponse> X context(Integer timeout, T request, Class<X> clazz) throws Exception;

    <T extends BaseRequest, X extends BaseResponse> X context(T request, Class<X> clazz, ActionExtension func) throws Exception;

    <T extends BaseRequest, X extends BaseResponse> X context(T request, Class<X> clazz) throws Exception;
}
